#pragma once

#include <iostream>
#include <vector>
using namespace std;

class IEngine;
typedef unsigned char KeyCodeType;

class IInput
{
protected:
	IEngine *mEngine;

	vector<KeyCodeType> mPressedKeys;

public:
	IInput(IEngine *engine);
	virtual ~IInput();

	virtual void Init() = 0;

	virtual void RegisterKeyPressed(KeyCodeType keyCode);

	virtual bool IsKeyPressed(KeyCodeType keyCode);

	virtual void ResetInputs();

	virtual KeyCodeType GetLastKeyPressed();
};
